The present invention relates to techniques regarding a stream recovery method, a stream recovery program and a failure recovery apparatus.
A stream processing system is a data processing system having a function of processing stream data which is infinitely arriving time sequential data series. The stream processing system has a function of processing (selecting, projecting, coupling, aggregating, counting, etc) a large amount of stream data in real time on a memory. The stream processing system manages data necessary for real time processing on a memory. There is therefore a possibility of losing data developed on the memory when a failure occurs.
Roughly two failure recovery methods are incorporated when a failure occurs in a system which manages data on the memory. One method parallelizes a plurality of computers so as to increase redundancy and improve reliability to run another computer immediately after a failure occurs in one computer. The other method recovers a failure by making a single system have a failure recovery function.
An in-memory database is used in a system which develops data on a memory in order to improve performances, similar to the stream processing system. If the contents of the memory are extinguished, the database disappears. Snap shots of the contents of the database are acquired at every constant time periods, and thereafter a renewal journal is retained to recover a failure (refer to JP-A-2007-200114).
If the method of acquiring snap shots of the data on the memory like the prior art is applied to the stream processing system, it is considered that processing becomes slow because there are many inputs/outputs of data. The method of parallelizing stream processing systems causes high cost although reliability and usability are improved.
On the other hand, the stream processing system does not continue to hold a database on a memory as different from an in-memory database, but holds input data and edition data necessary for processing during a constant time period. If data is lost because of a failure of the stream processing system, the stream processing system can be recovered by a method of reentering stream data from an input stream backup of a constant time period necessary for processing.
With this method of reentering stream data from the input stream backup, however, all stream data stored in the input stream backup is required to be reentered because it cannot know what amount of and from which time the stream data should be reentered. This is inefficient in that stream data already processed is required to be processed again.